Many web-based applications are designed to monitor the status of a remote component, such as a web-server, and to display the results in near real-time. Such applications often include some mechanism for conveying updated status information from the remote component to the monitoring application. A common technique for updating the status information displayed by the monitoring application is to design the monitoring application to repeatedly query the remote component.
For example, the Hyper-Text Transfer Protocol (HTTP) includes “refresh timer” semantics to inform monitoring applications, such as web browsers, how often to reload status information. Web servers provide configuration files and Application Program Interfaces (“APIs”) that can be designed to specify a refresh interval for a particular webpage. When status information is requested by a web browser, the web server specifies this value in the HTTP header information for that webpage. After loading the webpage, the web browser begins timing the refresh interval. When the refresh interval expires, the web browser reloads the webpage to acquire updated information.
When several applications are monitoring a particular web server, the web server may become overwhelmed by status requests if the refresh interval is set too short. On the other hand, if the refresh interval is too long, the information provided by the monitoring applications may become so outdated as to be useless. Furthermore, a user relying on the information may need the information updated more frequently under certain circumstance and less frequently under others.